/**
 * 版权所有 (C), 2019-2019, XXX有限公司
 * 项目名：com.company.study.dsa.recursive
 * 文件名: FactorialTest
 * 日期: 2019/6/18 15:08
 * 说明:
 */
package com.company.study.dsa.recursive;

/**
 * 阶乘测试
 *
 * @author Anbang713
 * @create 2019/6/18
 */
public class FactorialTest {

    /**
     * 0！=1  1！=1
     * 负数没有阶乘,如果输入负数返回-1
     *
     * @param n
     * @return
     */
    public static int getFactorialFor(int n) {
        int temp = 1;
        if (n >= 0) {
            for (int i = 1; i <= n; i++) {
                temp = temp * i;
            }
        } else {
            return -1;
        }
        return temp;
    }

    /**
     * 0！=1  1！=1
     * 负数没有阶乘,如果输入负数返回-1
     *
     * @param n
     * @return
     */
    public static int getFactorial(int n) {
        if (n >= 0) {
            if (n == 0) {
                System.out.println(n + "!=1");
                return 1;
            } else {
                System.out.println(n);
                int temp = n * getFactorial(n - 1);
                System.out.println(n + "!=" + temp);
                return temp;
            }
        }
        return -1;
    }
}